Uncle bob said "Clean code reads like well-written prose", so why not reading my README.md like you read clean code
library arnaudelub;
export 'welcome/my_name_is_arnaud_delubac';
export 'fully_remote_worker/as_freelance/at_idelub';
export 'cross_plaform_developer/flutter';
export 'experienced_in_ecommerce';
export 'my_editor/vim_4_ever/nvim';
export 'my_os/linux_4_ever/manjaro';
part 'my_career.dart';
const oneYearExperience = '1 year of experience';
const twinapp = 'Twinapp';
const findo = 'Findo';
const elPuntAvui = 'El Punt Avui';
const reliqium = 'Reliqium';
const k8s = 'Kubernetes';
const docker = 'docker';
const azureCloud = 'Azure Cloud';
const typescript = 'typescript';
abstract class MyExperienceAsAFlutterDeveloper {
bool wasAFlutterDeveloperAtInteractiuImpactedMyCareer();
@deprecated
void isAFlutterDeveloperFreelancerAtIDelub();
@deprecated
Future<void> willBeCTOAndCoFounderAtFindo();
void isAJuniorArchitectAtNexplore();
}
/*
* Quick Note, this class is a lazy singleton, but to avoid any missunderstanding,
* i am neither lazy nor single!
**/
@LazySingleton(as: MyExperienceAsAFlutterDeveloper)
class MyExperienceAsAFlutterDeveloperImplementation implements MyExperienceAsAFlutterDeveloper {
final MyCareerRepository _myCareerRepository;
const MyExperienceAsAFlutterDeveloperImplementation(this._myCareerRepository);
@override
bool wasAFlutterDeveloperAtInteractiuImpactedMyCareer() {
_myCareerRepository.addProjectDone(twinapp);
final bool myFirstAttemptWithFlutterSucceeded = _myCareerRepository.isPublishedAndWorking(twinapp);
final didILovedIt = true;
_myCareerRepository.addExperience(oneYearExperience);
return myFirstAttemptWithFlutterSucceed && didILovedIt;
}
@override
void isAFlutterDeveloperFreelancerAtIDelub(){
_myCareerRepository.addProjectDone(elPuntAvui);
final today = DateTime.now();
final startDateAsFreelance = DateTime(2020, 04, 01);
final int numberOfYears = today.difference(startDateAsFreelance).inYears;
final year = "year${numberOfYears > 1 ? 's' : ''}";
_myCareerRepository.addExperience("$numberOfYears $year of experience");
}
@override
Future<bool> willBeCTOAndCoFounderAtFindo() async {
_myCareerRepository.addProjectDone(findo);
final myLastProjectSucceeded = await _myCareerRepository.isPublishedAndWorking(hero);
_myCareerRepository.canLevelUp(myLastProjectSucceeded);
return myLastProjectSucceeded;
}
@override
void isAJuniorArchitectAtNexplore() {
_myCareerRepository.addNewTechStack(k8s)..addNewTechstack(docker)
..addNewTechStack(azureCloud)..addNewTechStack(typescript)
final startDateAsFullStack = DateTime(2021, 03, 01);
final startDateAsJrArchitect = DateTime(2022, 09, 01);
final int numberOfYears = today.difference(startDateAsJrArchitect).inYears;
final year = "year${numberOfYears > 1 ? 's' : ''}";
_myCareerRepository.addExperience("1 year as fullstack (TS, Flutter, React)")
..addExperience("$numberOfYears $year of experience as Jr Architect");
}
}
extension MyFlutterAppsAndPackages on Flutter {
List<String> get developedApp => [
Reliqium,
Twinapp,
ElPuntAvui
Findo,
Ecohint];
List<String> get developedPackages => [flutter_fullpdfview, csv_picker_button, flutter_firebase_aut_facade];
}
extension MyLearningPath on AzureCloud {
List<String> get earnedCertificates => [];
List<String> get certsPass => [
AZ-900-Azure-Fundamental,
AZ-204-Azure-developer,
AZ-104-Azure-administrator-associate,
AZ-400-Azure-devops-engineer
];
}
dependencies:
- Typescript: 2+
- Flutter: 4+
- Python: 6+
- Angular: 3+
- Java: 1+
- Kubernetes: 1+
- Docker: 1+
- Azure Cloud: 1+
- Reliqium,
- Twinapp,
- ElPuntAvui Android,
- ElPuntAvui iOS,
- Findo,
- flutter_fullpdfview on github,
- flutter_fullpdfview on pub.dev =>
- flutter packages on Github,
- csv picker button on pub.dev =>
- flutter_firebase_auth_faacade on pub.dev =>
Flutterence | Open source Project, so it can evolve thanks to the community and for the community! Anyone who want to contribute is welcome to contact me |
csv_picker_button | Load and read you CSV! Parse your CSV data from a simple button |
firebase auth facade | Login with Firebase! All the power from firebase authentication in a simple plugin! |