www.Lyngvig.org

Velkommen GæstLog ind
RSS RSS

Navigation

Søg Lyngvig.org
»





PoweredBy

Resume for Mikael Lyngvig

RSS

Address

Mikael Lyngvig
Lillegade 2A, 1. tv.
DK-8500 Grenaa
Denmark
+45 31 41 82 19


Objective

A part-time or full-time job as a compiler engineer or build master at your company.

Education

1991, Grenaa Gymnasium, high school, 13 (A+) in Computer Science.
1993, University of Copenhagen, Computer Science, two years, interrupted by job offer in the USA.

I basically accepted the job in the USA, and thereby quit the university, because I was disappointed by the lack of education relevant to the commercial career I planned to pursue.  Things such as the IBM PC, coding standards, and profiling tools where hardly mentioned in the curriculum.  I already had some business experience prior to attending university and therefore knew what I wanted.  So I chose to become an autodidact software engineer and have continuously picked my jobs so that I learned more all the time.

Experience

01/91-10/91, Circuit Design A/S, Karlslunde, Denmark
Wrote a FAT12/FAT16 disk I/O driver:

  1. The module was 30 to 100 percent faster than MS-DOS and delivered constant speed.
  2. Accomplished the then extreme goal of delivering 360 KB/sec to the hard disk.
  3. Tested the module very thoroughly so as to make it ready for production use.

Platforms: IBM PC with MS-DOS.
Languages: Borland Turbo Pascal for DOS and 8086 assembly.

09/92-01/93, Konsulentfirmaet Boeje Larsen A/S, Copenhagen, Denmark
Wrote the utility “Swap” for the DOS program SprogMagisteren (SM):

  1. Wrote a keyboard interrupt handler that managed the virtual keystrokes sent to SM and WordPerfect for DOS.
  2. Wrote a screen buffer analyzer that made decisions on what keystrokes to send to the apps.

Platforms: IBM PC with MS-DOS.
Languages: Borland Turbo C++ and 8086 assembly.

10/92-05/93, Lizzi’s Exquisite Software Designs, Copenhagen, Denmark
Wrote various low-level modules and an automation tool to automate the use of a program:

  1. Wrote an exception handling facility (setjmp()/longjmp()-like).
  2. Wrote a backup program for in-house use.
  3. Wrote a macro facility for a program where the source was no longer available; the macro facility fed virtual keystrokes into the application's keyboard buffer while analyzing the screen buffer to determine what to do.
  4. Wrote various very fast assembly support routines for use in the main application.

Platforms: IBM PC with Windows 3.x.
Languages: Turbo Pascal for Windows v3.x and 8086 assembly.

11/93-05/95, Systems & Software, Inc. (SSI), Irvine, California, USA
Was the only developer on the company’s line of absolute linkers:

  1. Started out by optimizing the main linker’s execution time by some 200 percent.
  2. Fixed hundreds of bugs in the main linker (“Link&Locate 386”).
  3. Assisted the Test department in working out test cases for the linkers.
  4. Wrote 80386+ protected mode reset initialization code for use in embedded systems.
  5. Wrote a run-time library, including heap manager, for use with 4 compilers.
  6. Wrote a COFF loader module for use in the company’s Windows debugger.
  7. Wrote a Borland Debug Info to CodeView converter (it was reversible!).
  8. Wrote a C++ to C debug info converter because the debugger did not support C++ constructs.

Platforms: IBM PC with Windows NT, Sun SPARC with SunOS.
Languages: ANSI C, C++, 80386+ protected mode assembly, 4NT.

06/95-10/95, Decision Consultants, Inc., Dallas, Texas, USA
Worked as a firefighter in SABRE Decision Technologies (the software department of American Airlines):

  1. Wrote a network abstraction layer that supported Netware, NetBIOS, and TCP/IP.
  2. Proposed a number of methods for increasing performance of the main application.
  3. Held seminars on better coding style in corporation with management.

Platforms: IBM PC with Windows v3.x and OS/2, Sun SPARC with SunOS.
Languages: C++ and 80286 assembly.

11/95-03/96, Systems & Software, Inc., Irvine, California, USA
Resumed my former position at SSI (SABRE was too big, too formal, and too heavy for me):

  1. Finished up some documentation and prepared for the move to Denmark.

Platforms: IBM PC with Windows NT.
Languages: C, C++, 80386 protected mode assembly.

04/96-06/97, Toolwood v/ Mikael Lyngvig, Hoesterkoeb, Denmark
Worked as a consultant for SSI while living in Denmark:

  1. Wrote a very advanced debug info loader that handled a wide variety of formats.
  2. Assisted in creating the world's first visual (GUI) linker.
  3. Fixed many bugs in Link&Locate 386.

Platforms: IBM PC with Windows NT.
Languages: C++, 80386+ protected mode assembly.

07/97-02/98, DDC-I A/S, Lyngby, Denmark
Worked as a programmer on an Ada95 compiler specified in VDM:

  1. Worked briefly on an Ada83 linker written in Ada83.
  2. Discovered some very severe bugs in the VDM specification.
  3. Proposed various ways of optimizing the compiler and its implementation.
  4. Wrote three dumpers of the internal parse tree in the compiler.
  5. Wrote a C-style preprocessor for Ada.
  6. Helped porting the compiler system to PowerPC 603.

Platforms: Sun SPARC with Solaris.
Languages: Ada83, Ada95, C, PowerPC 603 assembly.

04/98-05/98, Danware Data A/S, Herlev, Denmark
Worked as a software developer on the Danware NetOp product:

  1. Optimized the application to run 75 percent (average) to 93 percent (maximum) faster by implementing a transfer optimization suggested by one of the owners of the company.
  2. Wrote an advanced remote control debug application that ran a given application on two systems and compared the displays generated in both ends so as to reveal errors and incorrect transfers.

Platforms: IBM PC with Windows NT.
Languages: C++.

08/98-09/99, Navision Software A/S, Vedbaek, Denmark
Worked as the only Build Master in the company:

  1. Evaluated a variety of scripting languages and selected Python as the tool language.
  2. Redid most of the former CMD.EXE Batch-based build system in Python.
  3. Enhanced the build system to send out email notifications and to make a report web site.
  4. Automated backup of the build system fully so that I became virtually redundant.
  5. Documented my changes and the system I had made prior to quitting the job.

Platforms: IBM PC with Windows NT, Alpha with Windows NT, AIX, HP-UX, SINIX.
Languages: Python, CMD.EXE batch, C.

10/99-05/02, Toolwood v/ Mikael Lyngvig, Denmark
Worked as a consultant for various companies while I ran my own company (made plenty of money!):

  1. Made an embedded Linux distribution from scratch (from a stock RedHat v6.x).
  2. Made parts of a gas station pump software.
  3. Made parts of the specification for a mail system for a set-top box.
  4. Designed and implemented parts of a portable print server.

Platforms: IBM PC with Windows XP+, IBM PC with Linux.
Languages: C++, Python.

09/02-present, none, Denmark
Retired, but I have been working on and developing all sorts of projects during this time:

  1. NutBox for .NET/Mono: A set of command-line utilities for the .NET and Mono platforms.
  2. www.braceless.org: The Braceless Programming Language, A new programming language still very much in the works.
  3. “C with Exceptions”: A proposal for very fast exceptions in C (and any other imperative language).

Platforms: IBM PC with Windows, IBM PC with Linux.
Languages: Python, C++, C#, Intel EM64T/AMD64 assembly.

Code Samples

If you need code samples, you can download any of these:

  1. The "C with Exceptions" source of the abandoned "cwe" project at www.Sourceforge.net.
  2. The C# source of the Braceless project at http://www.braceless.org/doc/html/index.html.
  3. The C# source of the Nutbox project at www.nutbox.org.

Professionally

I probably shine the most when working as a software handyman or build master; I can code, I can help out, I can test, I can lots of different things.  I am sort of a very skilled jack of all trades rather than an expert on any particular trade.  I love having a varied business day where I leave for home with a genuine feeling of having accomplished something worthwhile.

I have programmed in some fourteen to fifteen programming languages on five to ten platforms, and have spent the majority of my time on development tools.  My absolute favorite languages are C# and Python, but I have coded in C and C++ for some 20 years.  The reason C# outranks Python is twofold: C# is compiled and Python breaks when you try to refactor large code bases (5000+ lines): I’ve tried it a few times and every time I ended up with a dead project that was beyond repair.

I am more than anything else autodidact: Give me a task and some time, and I’ll figure out how to do it in a wonderful way that takes both maintainability and performance into consideration.

I have never been fired or asked to leave the premises.  As a rule of thumb, my employers asked me to stay when I inevitably left for greener pastures (I was young and all pastures seemed greener to me back then, this is the reason why I have worked in so many companies).  Nowadays, I am looking for a long time/life long career at the same company because I have finally figured out that this is how you get the really exciting tasks.

Privately

I am a quiet person who is normally very good at what he does.  I prefer to express myself in writing as this leads to a permanent result that can be used and reused endlessly.  Unlike the majority of software developers, I actually like documenting what I do and why.

Denne hjemmeside vedligeholdes af .  Copyleft (-) 2010-2012 Mikael Lyngvig.  No rights reserved. Siden hostes på www.UnoEuro.com.